package traveldream.ejb.entities;

import java.io.Serializable;
import java.lang.String;
import java.sql.Time;

import javax.persistence.*;

import travelDream.ejb.DTOs.EscursioneDTO;

/**
 * Entity implementation class for Entity: Escursione
 *
 */
@Entity
@Table(name="ESCURSIONE")
@NamedQueries({ @NamedQuery(name= Escursione.FIND_ALL, query="SELECT e FROM Escursione e WHERE e.prenotabile = true"),
	@NamedQuery(name= Escursione.FIND_BY_CITTA, query = "SELECT e FROM Escursione e WHERE e.citta = :citta AND e.prenotabile = true"),
	@NamedQuery(name= Escursione.FIND_BY_INTERESSE, query = "SELECT e FROM Escursione e WHERE e.luogoInteresse = :luogoInteresse AND e.prenotabile=true")
})
public class Escursione implements Serializable {

	//Utilizzabili dagli EJB per creare le queries
	public static final String FIND_ALL = "Escursione.findAll";
	public static final String FIND_BY_CITTA = "Escursione.findByCitta";
	public static final String FIND_BY_INTERESSE = "Escursione.findByInteresse";
	   
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int escursioneID;
	private String citta;
	private Time ora;
	private String luogoInteresse;
	private boolean prenotabile;
	
	private static final long serialVersionUID = 1L;

	//costruttore default
	public Escursione() {
		super();
		prenotabile = true; //nuovo prodotto base nasce come "prenotabile"
	}
	
	//costruttore per entities da EscursioneDTO
	public Escursione(EscursioneDTO escursione) {
		this.citta = escursione.getCitta();
		this.ora = Time.valueOf(escursione.getOra());	//String > Time
		this.luogoInteresse = escursione.getLuogoInteresse();
		this.prenotabile = true; //nuovo prodotto base nasce come "prenotabile"
	}
	
	//converte in HotelDTO, utilizzabile da EJB per mandare dati al Web ("prenotabile" non serve)
	public EscursioneDTO entityToDTO(){
		EscursioneDTO tmp = new EscursioneDTO();
		tmp.setEscursioneId(escursioneID);
		tmp.setCitta(citta);
		tmp.setLuogoInteresse(luogoInteresse);
		tmp.setOra(ora.toString());
		return tmp;
	}
	
	//getters e setters
	public int getEscursioneID() {
		return this.escursioneID;
	}

	public void setEscursioneID(int escursioneID) {
		this.escursioneID = escursioneID;
	}   
	
	public String getCitta() {
		return this.citta;
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}
	
	public Time getOra() {
		return ora;
	}

	public void setOra(Time ora) {
		this.ora = ora;
	}

	public String getLuogoInteresse() {
		return this.luogoInteresse;
	}

	public void setLuogoInteresse(String luogoInteresse) {
		this.luogoInteresse = luogoInteresse;
	}

	public boolean isPrenotabile() {
		return prenotabile;
	}

	public void setPrenotabile(boolean prenotabile) {
		this.prenotabile = prenotabile;
	}
	
	
   
}
